@echo off
@REM 使用UTF-8映射字符
@chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION

if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前运行路径是：%CD%
echo 已获取管理员权限

set "system[0]=mainpage"
set "system[1]=system"
set "system[2]=course"
set "system[3]=exam"
set "system[4]=manage"

:: 检查目标文件夹 AllDist 是否存在，不存在则创建
if not exist "%~sdp0AllDist" (
    mkdir "%~sdp0AllDist"
)

:: 循环遍历数组
for /L %%i in (0,1,4) do (
    echo 正在处理: !system[%%i]!...
   
    :: 使用 PowerShell 执行 npm run build:prod，并判断是否成功
    powershell -Command "cd '%~sdp0!system[%%i]!'; npm run build:prod; if ($?) {exit 0} else {exit 1}"

    :: 如果 npm run build:prod 成功，继续执行后续操作
    if %ERRORLEVEL% EQU 0 (
        echo npm build 成功，执行后续操作...

        :: 重命名文件夹
        powershell -Command "Rename-Item -Path '%~sdp0!system[%%i]!\dist' -NewName '!system[%%i]!'"

        :: 移动文件夹到目标目录
        powershell -Command "Move-Item -Path '%~sdp0!system[%%i]!\!system[%%i]!' -Destination '%~sdp0AllDist\!system[%%i]!'"

        echo 操作完成: !system[%%i]!
    ) else (
        echo npm build 失败，跳过此操作: !system[%%i]!
    )

    :: 等待 1 秒
    timeout /t 1 >nul
)

exit

endlocal